package com.library.books.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.library.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * 书架对象 book_shelf
 *
 * @author hb
 * @date 2024-10-14
 */
@ApiModel("书架对象 表名：book_shelf")
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BookShelf implements Serializable {

    private static final long serialVersionUID = 1L;

    /** id */
    @ApiModelProperty("id")
    @TableId(type = IdType.AUTO)
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Long bookShelfId;

    /** 父菜单id */
    @ApiModelProperty("父菜单id")
    @Excel(name = "父菜单id")
    private Long parentId;

    /** 书架名称：A书架 */
    @ApiModelProperty("书架名称：A书架")
    @Excel(name = "书架名称：A书架")
    private String bookShelfName;

    /** 书架状态：0：正常，1：停用 */
    @ApiModelProperty("书架状态：0：正常，1：停用")
    @Excel(name = "书架状态：0：正常，1：停用")
    private String bookShelfStatus;

    /** 创建人id */
    @ApiModelProperty("创建人id")
    @Excel(name = "创建人id")
    @TableField(fill = FieldFill.INSERT)
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Long createId;

    /** 创建者 */
    @ApiModelProperty("创建者")
    @Excel(name = "创建者")
    @TableField(fill = FieldFill.INSERT)
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String createBy;

    /** 创建时间 */
    @ApiModelProperty("创建时间")
    @Excel(name = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Date createTime;

    /** 修改人id */
    @ApiModelProperty("修改人id")
    @Excel(name = "修改人id")
    @TableField(fill = FieldFill.UPDATE)
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Long updateId;

    /** 修改人 */
    @ApiModelProperty("修改人")
    @Excel(name = "修改人")
    @TableField(fill = FieldFill.UPDATE)
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.UPDATE)
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Date updateTime;

}
